﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace vudu.ClasesDominio
{
    public class Materia
    {
        private int _codigo;
        private string _nombre;
        private int _horasTeoria;
        private int _horasPractica;
        private string _descripcion;
        private string _estatus;
        private int _numeroCreditos;
        private int _semestre;
        private List<SeccionMateria> _misSecciones;
       



        #region Constructores

        public Materia()
        {
            _misSecciones = new List<SeccionMateria>();
        }

        public Materia(int nuevoCodigo, string nuevoNombre, int nuevoHorasTeoria, int nuevoHorasPractica,
                       string nuevoDescripcion, string nuevoEstatus,int nuevoNumeroCreditos,int nuevoSemestre)
        {
            Codigo = nuevoCodigo;
            Nombre = nuevoNombre;
            HorasTeoria = nuevoHorasTeoria;
            HorasPractica = nuevoHorasPractica;
            Descripcion = nuevoDescripcion;
            Estatus = nuevoEstatus;
            NumeroCreditos = nuevoNumeroCreditos;
            Semestre = nuevoSemestre;
        }

        #endregion Constructores

        #region gets & sets
        public int Semestre
        {
            get { return _semestre; }
            set { _semestre = value; }
        }

        public int Codigo
        {
            get { return _codigo; }
            set { _codigo = value; }
        }

        public string Nombre
        {
            get { return _nombre; }
            set { _nombre = value; }
        }

        public int HorasTeoria
        {
            get { return _horasTeoria; }
            set { _horasTeoria = value; }
        }

        public int HorasPractica
        {
            get { return _horasPractica; }
            set { _horasPractica = value; }
        }

        public string Descripcion
        {
            get { return _descripcion; }
            set { _descripcion = value; }
        }

        public string Estatus
        {
            get { return _estatus; }
            set { _estatus = value; }
        }
        public String CodigoNombre
        {
            // Devuelve los datos de la materia de la siguiente forma: 1 Desarrollo
            //Sirve para llenar DropDownList
            get { return this.Codigo + " " + this.Nombre; }
        }

        public int NumeroCreditos
        {
            get { return _numeroCreditos; }
            set { _numeroCreditos = value; }
        }


        public List<SeccionMateria> MisSecciones
        {
            get { return _misSecciones; }
            set { _misSecciones = value; }
        }

        #endregion gets & sets

        #region  Metodo Equals

        public override bool Equals(Object aComparar)
        {
            Materia Compara = null;
            bool Comparacion = false;
            if (aComparar != null)
            {
                if (ReferenceEquals(aComparar, this))
                    Comparacion = true;
                Compara = (Materia)aComparar;
                if (Compara.Codigo == this.Codigo)
                    Comparacion = true;
                else
                    Comparacion = false;
            }
            return Comparacion;
        }

        #endregion Metodo Equals

        #region Metodos de la Clase




        #endregion Metodos de la Clase


    }
}